package com.yupi.springbootinit.model.vo.production;

import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * 生产任务详情 VO
 */
@Data
public class ProductionTaskDetailVO implements Serializable {

    private static final long serialVersionUID = 1L;

    // ========== 任务基本信息 ==========

    /**
     * 任务ID
     */
    private Long taskId;

    /**
     * 任务类型
     */
    private String taskType;

    /**
     * 任务状态
     */
    private String taskStatus;

    // ========== 批次基本信息 ==========

    /**
     * 批次ID
     */
    private Long batchId;

    /**
     * 批次编码（如 "SO-001-A"）
     */
    private String batchCode;

    /**
     * 批次序号（如 1, 2, 3）
     */
    private Integer batchNo;

    /**
     * 订单号
     */
    private String orderNumber;


    private String flowNumber;

    private String productionPlanNumber;

    // ========== 批次产品列表 ==========

    /**
     * 本批次产品列表
     */
    private List<BatchProductVO> products;

    // ========== 工序列表 ==========

    /**
     * 工序列表
     */
    private List<ProcessStepVO> steps;

    // ==================== 内部类 ====================

    /**
     * 批次产品信息
     */
    @Data
    public static class BatchProductVO implements Serializable {

        /**
         * 产品料号
         */
        private String productCode;

        private BigDecimal productHeight;


        private String batchCode;


        private String deviceName;


        private String powderSupplier;

        private String materialSpec;

        private String materialBrand;

        /**
         * 产品名称
         */
        private String productName;

        /**
         * 本批次生产数量
         */
        private Integer productionQuantity;

        /**
         * 规格型号（来自工艺单产品）
         */
        private String specification;

        /**
         * 零件图号（来自工艺单产品）
         */
        private String partDrawingNo;

        /**
         * 单件重量（g，来自工艺单产品）
         */
        private java.math.BigDecimal unitWeight;
    }
}